<?php
App::uses('AppController', 'Controller');
/**
 * Alunos Controller
 *
 * @property Aluno $Aluno
 */
class AlunosController extends AppController {

var $components = array('buscador');
var $helpers = array('Data');

	public function beforeFilter(){
		
		parent::beforeFilter();
		if(!$this->admin() &&( $this->request->action !== 'logout' && $this->request->action !== 'login')){
			throw new MethodNotAllowedException(__('Opção inválida'));
		}
		
	}

	public function lista() {
	if(empty($this->request->data)){
			$this->Aluno->recursive = 0;
			$this->set('alunos', $this->paginate());
		}
		else{
			$this->buscador->buscaCompleta($this->request->data['Aluno']);;
			$this->paginate = array('conditions'=>$this->buscador->returnCriterio());
			$this->set('alunos', $this->paginate());
		}
	}

/**
 * view method
 *
 * @param string $id
 * @return void
 */
	public function info($id = null) {
		$this->Aluno->id = $id;
		if (!$this->Aluno->exists()) {
			throw new NotFoundException(__('Usuário inválido'));
		}
		$this->set('aluno', $this->Aluno->read(null, $id));
		$this->set('livros', $this->Aluno->Resenhas->Livro->find('list'));
	}

/**
 * add method
 *
 * @return void
 */
	public function novo() {
		if ($this->request->is('post')) {
			$this->Aluno->create();
			if ($this->Aluno->save($this->request->data)) {
				$this->Session->setFlash(__('Usuário salvo'));
				$this->redirect(array('action' => 'lista'));
			} else {
				$this->Session->setFlash(__('Não foi possível salvar. Por favor tente novamente'));
			}
		}
	}

/**
 * edit method
 *
 * @param string $id
 * @return void
 */
	public function editar($id = null) {
		$this->Aluno->id = $id;
		if (!$this->Aluno->exists()) {
			throw new NotFoundException(__('Usuário inválido'));
		}
		if ($this->request->is('post') || $this->request->is('put')) {
			if ($this->Aluno->save($this->request->data)) {
				$this->Session->setFlash(__('Usuário salvo'));
				$this->redirect(array('action' => 'lista'));
			} else {
				$this->Session->setFlash(__('Usuário não pode ser salvo. Por favor, tente novamente'));
			}
		} else {
			$this->request->data = $this->Aluno->read(null, $id);
		}
	}

/**
 * delete method
 *
 * @param string $id
 * @return void
 */
	public function apagar($id = null) {
		if (!$this->request->is('post')) {
			throw new MethodNotAllowedException();
		}
		$this->Aluno->id = $id;
		if (!$this->Aluno->exists()) {
			throw new NotFoundException(__('Usuário inválido'));
		}
		if ($this->Aluno->delete()) {
			$this->Session->setFlash(__('Usuário excluído'));
			$this->redirect(array('action'=>'lista'));
		}
		$this->Session->setFlash(__('Usuário não excluído'));
		$this->redirect(array('action' => 'lista'));
	}
	
	public function login() {
	    if ($this->request->is('post')) {
	        if ($this->Auth->login()) {
	        		$usuario = $this->Auth->user();
	            	return $this->redirect('/');
	        } else {
	            $this->Session->setFlash("Login inválido!", 'default', array(), 'auth');
	        }
	    }
	}
	
	public function logout(){
		$this->Session->setFlash("Você foi desconectado com sucesso!");
		$this->Auth->logout();
		$this->redirect('/');
	}
}
